package com.eupmt.lab3.persistence.ibatis.dao;

import com.eupmt.lab3.domain.Distribuidor;
import com.eupmt.lab3.domain.NotaReparacio;
import com.eupmt.lab3.domain.Producte;
import com.eupmt.lab3.domain.TipusReparacio;
import com.eupmt.lab3.utils.Log;
import com.ibatis.common.resources.Resources;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.DaoManagerBuilder;
import java.io.IOException;
import java.io.Reader;
import java.util.Date;
import java.util.List;

/**
 *
 * @author sony
 */
public class NotaReparacioDaoManager extends DAOManager {

    protected static NotaReparacioDaoManager instance = null;
    private NotaReparacioDAO NotaReparacioDAO = null;
    private Log log = null;


    private NotaReparacioDaoManager() throws IOException {
        super();
        log = new Log();
        Reader readerDao = Resources.getResourceAsReader("com/eupmt/lab3/persistence/ibatis/daoConfig.xml");
        DaoManager daoManager = DaoManagerBuilder.buildDaoManager(readerDao);
        this.NotaReparacioDAO = (NotaReparacioDAO) daoManager.getDao(NotaReparacioDAO.class);
       
    }

    // Mètodes DistribuidorDAOImpl

   public void saveReparacio(NotaReparacio notaReparacio)   throws Exception{
       NotaReparacioDAO.saveReparacio(notaReparacio);
   }
   public void insertReparacio(NotaReparacio notaReparacio) throws Exception{
       NotaReparacioDAO.insertReparacio(notaReparacio);
   }
   public void updateReparacio(NotaReparacio notaReparacio) throws Exception{
       NotaReparacioDAO.updateReparacio(notaReparacio);
   }
   public void deleteReparacio(NotaReparacio notaReparacio) throws Exception{
       NotaReparacioDAO.deleteReparacio(notaReparacio);
   }

   public NotaReparacio getNotaReparacioById(int idNotaReparacio) throws Exception{
       return NotaReparacioDAO.getNotaReparacioById(idNotaReparacio);
   }

   public List<NotaReparacio> getNotesReparacioByDistribuidor(int idDistribuidor)         throws Exception{
       return NotaReparacioDAO.getNotesReparacioByDistribuidor(idDistribuidor);
   }
   public List<NotaReparacio> getNotesReparacioByProducte(int idProducte)                     throws Exception{
       return NotaReparacioDAO.getNotesReparacioByProducte(idProducte);
   }
   public List<NotaReparacio> getNotesReparacioByTipusReparacio(int idTipusReparacio)   throws Exception{
       return NotaReparacioDAO.getNotesReparacioByTipusReparacio(idTipusReparacio);
   }
   public List<NotaReparacio> getNotesReparacioBetweenDates(Date dataInici, Date dataFi)         throws Exception{
       return NotaReparacioDAO.getNotesReparacioBetweenDates(dataInici, dataFi);
   }

    public static NotaReparacioDaoManager getInstance() throws IOException {
        if (instance == null) {
            instance = new NotaReparacioDaoManager();
        }
        return instance;
    }
}
